﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ChinapnrAPI;

namespace Uranus.ChinaService
{
    public class HuiFuResponseDTO
    {
        private BaseChinapnr baseChinapnr;
        private string ip;

        public HuiFuResponseDTO(BaseChinapnr baseChinapnr, string result)
        {
            this.Result = result;
            this.Version = baseChinapnr.Version;
            this.CmdId = baseChinapnr.CmdId;
            this.RetUrl = baseChinapnr.RetUrl;
            this.BgRetUrl = baseChinapnr.BgRetUrl;
            this.MerPriv = baseChinapnr.MerPriv;
            this.ChkValue = baseChinapnr.ChkValue;
            this.RespCode = baseChinapnr.RespCode;
            this.RespDesc = baseChinapnr.RespDesc;
            this.SecRespCode = baseChinapnr.SecRespCode;
            this.SecRespDesc = baseChinapnr.SecRespDesc;
            this.MerCustId = baseChinapnr.MerCustId;
            this.UsrCustId = baseChinapnr.UsrCustId;
            this.UsrId = baseChinapnr.UsrId;
            this.UsrName = baseChinapnr.UsrName;
            this.IdType = baseChinapnr.IdType;
            this.IdNo = baseChinapnr.IdNo;
            this.UsrMp = baseChinapnr.UsrMp;
            this.UsrEmail = baseChinapnr.UsrEmail;
            this.LoginPwd = baseChinapnr.LoginPwd;
            this.TransPwd = baseChinapnr.TransPwd;
            this.OpenAcctId = baseChinapnr.OpenAcctId;
            this.OpenBankId = baseChinapnr.OpenBankId;
            this.GateBankId = baseChinapnr.GateBankId;
            this.OpenProvId = baseChinapnr.OpenProvId;
            this.OpenAreaId = baseChinapnr.OpenAreaId;
            this.OpenBranchName = baseChinapnr.OpenBranchName;
            this.GateBusiId = baseChinapnr.GateBusiId;
            this.IsDefault = baseChinapnr.IsDefault;
            this.TransAmt = baseChinapnr.TransAmt;
            this.SubAcctId = baseChinapnr.SubAcctId;
            this.SubAcctType = baseChinapnr.SubAcctType;
            this.TrxId = baseChinapnr.TrxId;
            this.OrdId = baseChinapnr.OrdId;
            this.OrdDate = baseChinapnr.OrdDate;
            this.SubOrdId = baseChinapnr.SubOrdId;
            this.SubOrdDate = baseChinapnr.SubOrdDate;
            this.MaxTenderRate = baseChinapnr.MaxTenderRate;
            this.BorrowerDetails = baseChinapnr.BorrowerDetails;
            this.BorrowerCustId = baseChinapnr.BorrowerCustId;
            this.BorrowerAmt = baseChinapnr.BorrowerAmt;
            this.BorrowerRate = baseChinapnr.BorrowerRate;
            this.VouchAcctId = baseChinapnr.VouchAcctId;
            this.CurCode = baseChinapnr.CurCode;
            this.TenderPlanType = baseChinapnr.TenderPlanType;
            this.Fee = baseChinapnr.Fee;
            this.DivDetails = baseChinapnr.DivDetails;
            this.InCustId = baseChinapnr.InCustId;
            this.OutCustId = baseChinapnr.OutCustId;
            this.DivCustId = baseChinapnr.DivCustId;
            this.InAcctId = baseChinapnr.InAcctId;
            this.OutAcctId = baseChinapnr.OutAcctId;
            this.AcctBal = baseChinapnr.AcctBal;
            this.FrzBal = baseChinapnr.FrzBal;
            this.AvlBal = baseChinapnr.AvlBal;
            this.AcctDetails = baseChinapnr.AcctDetails;
            this.AcctType = baseChinapnr.AcctType;
            this.QueryTransType = baseChinapnr.QueryTransType;
            this.BeginDate = baseChinapnr.BeginDate;
            this.EndDate = baseChinapnr.EndDate;
            this.PageNum = baseChinapnr.PageNum;
            this.PageSize = baseChinapnr.PageSize;
            this.TotalItems = baseChinapnr.TotalItems;
            this.Remark = baseChinapnr.Remark;
            this.InvestCustId = baseChinapnr.InvestCustId;
            this.BorrCustId = baseChinapnr.BorrCustId;
            this.TransStat = baseChinapnr.TransStat;
            this.PnrDate = baseChinapnr.PnrDate;
            this.PnrSeqId = baseChinapnr.PnrSeqId;
            this.AuditFlag = baseChinapnr.AuditFlag;
            this.DcFlag = baseChinapnr.DcFlag;
            this.CheckDate = baseChinapnr.CheckDate;
            this.CharSet = baseChinapnr.CharSet;
            this.ReconciliationDtoList = baseChinapnr.ReconciliationDtoList;
            this.InAcctType = baseChinapnr.InAcctType;
            this.ReturnFee = baseChinapnr.ReturnFee;
            this.ReturnAcctType = baseChinapnr.ReturnAcctType;
            this.ReturnAcctId = baseChinapnr.ReturnAcctId;
            this.FeeObj = baseChinapnr.FeeObj;
            this.FeeAmt = baseChinapnr.FeeAmt;
            this.FeeCustId = baseChinapnr.FeeCustId;
            this.FeeAcctId = baseChinapnr.FeeAcctId;
            this.IsUnFreeze = baseChinapnr.IsUnFreeze;
            this.UnFreezeOrdId = baseChinapnr.UnFreezeOrdId;
            this.IsFreeze = baseChinapnr.IsFreeze;
            this.FreezeOrdId = baseChinapnr.FreezeOrdId;
            this.FreezeTrxId = baseChinapnr.FreezeTrxId;
            this.RealFlag = baseChinapnr.RealFlag;
            this.CertId = baseChinapnr.CertId;
            this.UpdDateTime = baseChinapnr.UpdDateTime;
            this.ReqExt = baseChinapnr.ReqExt;
            this.RespExt = baseChinapnr.RespExt;
            this.InstuCode = baseChinapnr.InstuCode;
            this.BusiCode = baseChinapnr.BusiCode;
            this.TaxCode = baseChinapnr.TaxCode;
            this.GuarType = baseChinapnr.GuarType;
            this.AuditStat = baseChinapnr.AuditStat;
            this.AuditDesc = baseChinapnr.AuditDesc;
            this.ServFeeAcctId = baseChinapnr.ServFeeAcctId;
            this.ServFee = baseChinapnr.ServFee;
            this.InUsrCustId = baseChinapnr.InUsrCustId;
            this.SellCustId = baseChinapnr.SellCustId;
            this.BuyCustId = baseChinapnr.BuyCustId;
            this.CreditAmt = baseChinapnr.CreditAmt;
            this.CreditDealAmt = baseChinapnr.CreditDealAmt;
            this.BidDetails = baseChinapnr.BidDetails;
            this.BidOrdId = baseChinapnr.BidOrdId;
            this.BidOrdDate = baseChinapnr.BidOrdDate;
            this.BidCreditAmt = baseChinapnr.BidCreditAmt;
            this.BorrowerCreditA = baseChinapnr.BorrowerCreditA;
            this.PrinAmt = baseChinapnr.PrinAmt;
            this.FeeObjFlag = baseChinapnr.FeeObjFlag;
            this.CardId = baseChinapnr.CardId;
            this.createtime = DateTime.Now.AddHours(8);
            this.PageType = baseChinapnr.PageType;
            this.BankId = baseChinapnr.BankId;
            this.CustId = baseChinapnr.CustId;
            this.ExpressFlag = baseChinapnr.ExpressFlag;
            this.DzObject = baseChinapnr.DzObject;
            this.InterestAmt = baseChinapnr.InterestAmt;
            this.ProId = baseChinapnr.ProId;
            this.PrincipalAmt = baseChinapnr.PrincipalAmt;
            this.RespType = baseChinapnr.RespType;
        }

        public DateTime createtime { get; set; }


        /// <summary>
        /// 订单号
        /// </summary>
        public string OrdId { get; set; }
        /// <summary>
        /// 请求类型
        /// </summary>
        public string CmdId { get; set; }

        /// <summary>
        /// 商户私有域
        /// </summary>
        public string MerPriv { get; set; }

        /// <summary>
        /// 签名
        /// </summary>
        public string ChkValue { get; set; }

        /// <summary>
        /// 应答返回码
        /// </summary>
        public string RespCode { get; set; }

        /// <summary>
        /// 应答描述
        /// </summary>
        public string RespDesc { get; set; }
        /// <summary>
        /// 二级应答码
        /// </summary>
        public string SecRespCode { get; set; }

        /// <summary>
        /// 二级应答描述
        /// </summary>
        public string SecRespDesc { get; set; }


        /// <summary>
        /// 用户客户号
        /// </summary>
        public string UsrCustId { get; set; }

        /// <summary>
        /// 交易金额
        /// 泛指交易金额，如充值、支付、取现、冻结、解冻金额 （金额格式必须是###.00）比如 2.00，2.01
        /// </summary>
        public string TransAmt { get; set; }

        /// <summary>
        /// 是否冻结
        /// Y 冻结 N不冻结
        /// </summary>
        public string IsFreeze { get; set; }

        /// <summary>
        /// 冻结订单号
        /// </summary>
        public string FreezeOrdId { get; set; }

        /// <summary>
        /// 冻结标识
        /// 组成规则为：8 位商户专属平台日期+10 位系统流水号
        /// </summary>
        public string FreezeTrxId { get; set; }

        public string Result { get; set; }

        /// <summary>
        /// 前台返回页面
        /// </summary>
        public string RetUrl { get; set; }

        /// <summary>
        /// 后台返回地址
        /// </summary>
        public string BgRetUrl { get; set; }

        /// <summary>
        /// 商户客户号
        /// </summary>
        public string MerCustId { get; set; }

        /// <summary>
        /// 用户号
        /// </summary>
        public string UsrId { get; set; }

        /// <summary>
        /// 真实名称
        /// </summary>
        public string UsrName { get; set; }

        /// <summary>
        /// 证件类型
        /// </summary>
        public string IdType { get; set; }

        /// <summary>
        /// 证件号码
        /// </summary>
        public string IdNo { get; set; }

        /// <summary>
        /// 手机号
        /// </summary>
        public string UsrMp { get; set; }

        /// <summary>
        /// 用户 Email 
        /// </summary>
        public string UsrEmail { get; set; }

        /// <summary>
        /// 用户登录密码
        /// </summary>
        public string LoginPwd { get; set; }

        /// <summary>
        /// 用户交易密码
        /// </summary>
        public string TransPwd { get; set; }

        /// <summary>
        /// 开户银行账号
        /// </summary>
        public string OpenAcctId { get; set; }

        /// <summary>
        /// 开户银行代号
        /// </summary>
        public string OpenBankId { get; set; }

        /// <summary>
        /// 开户银行代号
        /// </summary>
        public string GateBankId { get; set; }

        /// <summary>
        /// 开户银行省份
        /// </summary>
        public string OpenProvId { get; set; }

        /// <summary>
        /// 开户银行地区
        /// </summary>
        public string OpenAreaId { get; set; }

        /// <summary>
        /// 开户银行名称
        /// </summary>
        public string OpenBranchName { get; set; }

        /// <summary>
        /// 支付网关业务代号
        /// </summary>
        public string GateBusiId { get; set; }

        /// <summary>
        /// 是否默认
        /// </summary>
        public string IsDefault { get; set; }

        /// <summary>
        /// 子账户号
        /// </summary>
        public string SubAcctId { get; set; }

        /// <summary>
        /// 子账户类型
        /// </summary>
        public string SubAcctType { get; set; }

        /// <summary>
        /// 商户专属平台交易唯一标识
        /// 组成规则为：8 位商户专属平台日期+10 位系统流水号
        /// </summary>
        public string TrxId { get; set; }

        /// <summary>
        /// 订单日期
        /// </summary>
        public string OrdDate { get; set; }

        /// <summary>
        /// 从属订单号
        /// </summary>
        public string SubOrdId { get; set; }

        /// <summary>
        /// 从属订单日期
        /// </summary>
        public string SubOrdDate { get; set; }

        /// <summary>
        /// 最大投资手续费率
        /// </summary>
        public string MaxTenderRate { get; set; }

        /// <summary>
        /// 借款人信息
        /// </summary>
        public string BorrowerDetails { get; set; }

        /// <summary>
        /// 借款人客户好
        /// </summary>
        public string BorrowerCustId { get; set; }

        /// <summary>
        /// 借款金额 
        /// </summary>
        public string BorrowerAmt { get; set; }

        /// <summary>
        /// 借款手续费率
        /// </summary>
        public string BorrowerRate { get; set; }

        /// <summary>
        /// 担保账户
        /// </summary>
        public string VouchAcctId { get; set; }

        /// <summary>
        /// 币种
        /// </summary>
        public string CurCode { get; set; }

        /// <summary>
        /// 投标计划类型
        /// </summary>
        public string TenderPlanType { get; set; }

        /// <summary>
        /// 扣款手续费
        /// </summary>
        public string Fee { get; set; }

        /// <summary>
        /// 分账账户串
        /// </summary>
        public string DivDetails { get; set; }

        /// <summary>
        /// 入帐客户号
        /// </summary>
        public string InCustId { get; set; }

        /// <summary>
        /// 出账客户号
        /// </summary>
        public string OutCustId { get; set; }

        /// <summary>
        /// 手续费分账客户号
        /// </summary>
        public string DivCustId { get; set; }

        /// <summary>
        /// 入账子账户
        /// </summary>
        public string InAcctId { get; set; }

        /// <summary>
        /// 出账子账户
        /// </summary>
        public string OutAcctId { get; set; }

        /// <summary>
        /// 账户余额
        /// </summary>
        public string AcctBal { get; set; }

        /// <summary>
        /// 冻结余额
        /// </summary>
        public string FrzBal { get; set; }

        /// <summary>
        /// 可用余额
        /// </summary>
        public string AvlBal { get; set; }

        /// <summary>
        /// 财务结果串
        /// </summary>
        public string AcctDetails { get; set; }

        /// <summary>
        /// 账户类型
        /// </summary>
        public string AcctType { get; set; }

        /// <summary>
        /// 交易查询类型
        /// </summary>
        public string QueryTransType { get; set; }

        /// <summary>
        /// 开始时间
        /// </summary>
        public string BeginDate { get; set; }

        /// <summary>
        /// 结束时间
        /// </summary>
        public string EndDate { get; set; }

        /// <summary>
        /// 页数
        /// </summary>
        public string PageNum { get; set; }

        /// <summary>
        /// 每页记录数
        /// </summary>
        public string PageSize { get; set; }

        /// <summary>
        /// 记录总条数
        /// </summary>
        public string TotalItems { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }

        /// <summary>
        /// 投资人客户号
        /// </summary>
        public string InvestCustId { get; set; }

        /// <summary>
        /// 借款人客户号
        /// </summary>
        public string BorrCustId { get; set; }

        /// <summary>
        /// 汇付交易状态
        /// </summary>
        public string TransStat { get; set; }

        /// <summary>
        /// 汇付交易日期
        /// </summary>
        public string PnrDate { get; set; }

        /// <summary>
        /// 汇付交易流水
        /// </summary>
        public string PnrSeqId { get; set; }

        /// <summary>
        /// 复核标识
        /// R：拒绝	；S：复核通过
        /// </summary>
        public string AuditFlag { get; set; }

        /// <summary>
        /// 借贷记标记
        /// D：借记 C：代记
        /// </summary>
        public string DcFlag { get; set; }

        /// <summary>
        /// 检验日期
        /// </summary>
        public string CheckDate { get; set; }

        /// <summary>
        /// 编码集
        /// </summary>
        public string CharSet { get; set; }

        /// <summary>
        /// 对账结果串
        /// </summary>
        public string ReconciliationDtoList { get; set; }

        /// <summary>
        /// 账户类型
        /// </summary>
        public string InAcctType { get; set; }

        /// <summary>
        /// 返还手续费
        /// </summary>
        public string ReturnFee { get; set; }

        /// <summary>
        /// 返还账户类型
        /// </summary>
        public string ReturnAcctType { get; set; }

        /// <summary>
        /// 返还子帐号
        /// </summary>
        public string ReturnAcctId { get; set; }

        /// <summary>
        /// 手续费收取方
        /// </summary>
        public string FeeObj { get; set; }

        /// <summary>
        /// 手续费金额
        /// </summary>
        public string FeeAmt { get; set; }

        /// <summary>
        /// 手续费扣款客户号
        /// </summary>
        public string FeeCustId { get; set; }

        /// <summary>
        /// 手续费扣款子账户号
        /// </summary>
        public string FeeAcctId { get; set; }

        /// <summary>
        /// 是否解冻
        /// Y 解冻 N不解冻
        /// </summary>
        public string IsUnFreeze { get; set; }

        /// <summary>
        /// 解冻订单号
        /// </summary>
        public string UnFreezeOrdId { get; set; }

        /// <summary>
        /// 银行卡是否实名
        /// R：实名；I：验证中；N：未实名
        /// </summary>
        public string RealFlag { get; set; }

        /// <summary>
        /// 证件号码
        /// </summary>
        public string CertId { get; set; }

        /// <summary>
        /// 时间
        /// </summary>
        public string UpdDateTime { get; set; }

        /// <summary>
        /// 入参扩展域
        /// </summary>
        public string ReqExt { get; set; }

        /// <summary>
        /// 返参扩展域
        /// </summary>
        public string RespExt { get; set; }

        /// <summary>
        /// 组织机构代码
        /// </summary>
        public string InstuCode { get; set; }

        /// <summary>
        /// 营业执照编号
        /// </summary>
        public string BusiCode { get; set; }

        /// <summary>
        /// 税务登记号
        /// </summary>
        public string TaxCode { get; set; }

        /// <summary>
        /// 担保类型
        /// 是否担保类型，Y：是；N：否
        /// </summary>
        public string GuarType { get; set; }

        /// <summary>
        /// 审核状态
        /// I：	初始 T：提交
        /// </summary>
        public string AuditStat { get; set; }

        /// <summary>
        /// 审核状态描述
        /// </summary>
        public string AuditDesc { get; set; }

        /// <summary>
        /// 商户子帐户号
        /// </summary>
        public string ServFeeAcctId { get; set; }

        /// <summary>
        /// 商户收取服务费金额
        /// </summary>
        public string ServFee { get; set; }

        /// <summary>
        /// 入账客户号
        /// </summary>
        public string InUsrCustId { get; set; }

        /// <summary>
        /// 转让人客户号
        /// </summary>
        public string SellCustId { get; set; }

        /// <summary>
        /// 承接人客户号
        /// </summary>
        public string BuyCustId { get; set; }

        /// <summary>
        /// 转让金额
        /// </summary>
        public string CreditAmt { get; set; }

        /// <summary>
        /// 承接金额
        /// </summary>
        public string CreditDealAmt { get; set; }

        /// <summary>
        /// 债权转让明细
        /// </summary>
        public string BidDetails { get; set; }

        /// <summary>
        /// 原投标订单号
        /// </summary>
        public string BidOrdId { get; set; }

        /// <summary>
        /// 原投标订单日期
        /// </summary>
        public string BidOrdDate { get; set; }

        /// <summary>
        /// 转出原标金额
        /// </summary>
        public string BidCreditAmt { get; set; }

        /// <summary>
        /// 转出元标借款金额
        /// </summary>
        public string BorrowerCreditA { get; set; }

        /// <summary>
        /// 已还本金
        /// </summary>
        public string PrinAmt { get; set; }

        /// <summary>
        /// 续费收取对象标志
        /// </summary>
        public string FeeObjFlag { get; set; }

        public string CardId { get; set; }
        /// <summary>
        /// 版本号
        /// </summary>
        public string Version { get; set; }

        public string PageType { get; set; }

        public string BankId { get; set; }

        public string CustId { get; set; }

        public string ExpressFlag { get; set; }

        public string DzObject { get; set; }

        public string ProId { get; set; }

        public string InterestAmt { get; set; }

        public string PrincipalAmt { get; set; }

        public string RespType { get; set; }

    }
}